home *** CD-ROM | disk | FTP | other *** search
- /************************************************
- *
- * *** HAPPy Pascal compiler ***
- * set operation routine
- *
- * Copyright (c) H.Asano 1992
- ************************************************/
- #define EXTERN extern
- #include <stdarg.h>
- #include "pascomp.h"
-
- static va_list marker ;
-
- /****************************************/
- /* mkset(s,i,j,k,...,-1) : */
- /* 要素i,j,k...を持つ集合sの作成 */
- /* 引数は-1で最後とする */
- /****************************************/
- Set *mkset(Set *s,int first,...)
- {
- int i=first ;
-
- s->H=0;
- s->L=0;
- va_start(marker,first) ;
- while(i != -1) {
- addset((*s),i) ;
- i = va_arg(marker,int) ;
- }
- return(s) ;
- }
-
- /****************************************/
- /* orset(s1,s2) : s1 = s1とs2和集合 */
- /****************************************/
- Set *orset(Set *s1,Set *s2)
- {
- s1->H |= s2->H ;
- s1->L |= s2->L ;
- return(s1) ;
- }
-
- /****************************************/
- /* dfset(s1,s2) : s1 = s1とs2の差集合 */
- /****************************************/
- Set *dfset(Set *s1,Set *s2)
- {
- /* 0-0 -> 0 */
- /* 0-1 -> 0 */
- /* 1-0 -> 1 */
- /* 1-1 -> 0 */
-
- s1->H &= (s1->H ^ s2->H) ;
- s1->L &= (s1->L ^ s2->L) ;
- return(s1) ;
- }